This invention relates to call handling for telecommunications apparatus.
Telephony systems are known which are able automatically to identify a facsimile call on answering the telephone and switching from a voice (for example, a voice message mode) to a facsimile mode for automatically receiving a facsimile. Combined answerphone and facsimile machines of this type have been known for many years. Subsystems are also being provided in the form of computer software applications running on computers for connection to a telephone line via a modem. It is also known automatically to discriminate between facsimile and data calls. However, such systems are traditionally inflexible in operation, and provide a predetermined combination of voice answering, facsimile and data modes. An aim of the present invention is to provide a call handling mechanism which is able to operate using independently supplied functional modules, or applications, for handling different types of received calls, such as voice, fax, data or different combinations of these. A further difficulty, in the case of an analogue telephony device (such as a modem), is that it is impossible to determine the type of an incoming call without first answering the call and examining what is there.
For example, if a data application were to answer an incoming call which was in fact a voice call, the person at the other end of the telephone line would hear data tones instead of the voice service that was expected.
Accordingly, an aim of the present invention is to create an environment whereby diverse telephony applications can co-exist correctly.
Particular and preferred aspects of the invention are set out in the accompanying independent and dependent claims. Combinations of features from the dependent claims may be combined with features of the independent claims as appropriate and not merely as explicitly set out in the claims.
In accordance with one aspect of the invention, there is provided a call handling mechanism for telecommunications apparatus. The call handling mechanism includes a resource manager for controlling allocation of a functional module to process a received call, where a plurality of functional modules are each allocated a respective priority. The resource manager is configured to be operable to allocate the functional modules in order of priority.
Accordingly, an embodiment of the invention can provide a call handling mechanism including a resource manager which will control the allocation of individual applications to process a received call in a desired order. In this manner, a voice application (for example a voicemail application) can be arranged always to be employed in the first instance to answer an incoming telephone call. By pre-allocating respective priorities to any application for use with the resource manager, the resource manager is able to allocate the applications in order to handle an incoming telephone call.
In order that the resource manager has ready access to the details of the functional modules it can call upon, it preferably maintains a set of parameters for each functional module including a priority indicator for each functional module.
In one implementation of the invention at least one functional module is an object, more preferably a bean object, and yet more preferably a JavaBean(trademark) object, providing at least one method defining a telephony processing function. Each functional module is registered with the resource manager, the resource manager being configured to be operable to obtain parameters of each functional module, including the priority allocated thereto. The embodiment using beans for the applications enables the resource manager readily to obtain the characteristics of the functional module.
The resource manager is configured to be operable to offer a call to a functional module, and to offer the call to a next functional module in order of priority when the call is returned by the functional module without the call having been handled. A functional module is configured to be operable to determine whether it is able to handle a call, and, if not, to return a call promptly without the call having being handled for allocation to any functional module of lower priority. In this manner, the resource manager and the functional modules work together to enable rapid determination of which functional module is to handle the call, with the functional modules being asked in order of priority.
The functional modules could, for example, be a voice module for processing voice calls, a voicemail module for providing voicemail functions, a facsimile module for processing facsimile calls, a data module for processing data calls and so on.
Any voice module is arranged to have a higher priority than any facsimile module and any data module is arranged to have a higher priority than any data module, by specifying that each type of module should be given a priority number within predetermined ranges. As a result, the resource manager will offer a received call to any voice module before any facsimile module and will offer a received call to any facsimile module before any data module a received call to any facsimile module before any data module.
A voice module is configured to be operable to respond to detection of facsimile or data tones to return a call without the call having being handled for allocation to any functional module of lower priority. Similarly, a facsimile module is configured to be operable to respond to detection of data tones to return a call without the call having being handled for allocation to any functional module of lower priority. Accordingly, automatic identification of an appropriate module to handle the call can be achieved.
The call handling mechanism can be provided as computer software on a data carrier such as data storage to a telecommunications transmission medium. Alternatively, or in addition, at least part of the mechanism may be embedded, or hardwired, in a device such as an ASIC.
In accordance with another aspect of the invention, there is provided a functional module for a call handling mechanism as set out above. The functional module is configured to be operable to determine whether it is able to handle a call, and, if not, to return a call without the call having being handled for allocation to any functional module of lower priority.
In accordance with a further aspect of the invention, there is provided a telecommunications apparatus comprising at least one telephony resource for connection to a telecommunications network and a call handling mechanism as set out above.
The telephony resource can be an interface to the telecommunications network, such as a modem and the functional modules can be call processing applications.
In accordance with yet a further aspect of the invention, there is provided a method of handling calls in a telecommunications apparatus. The method comprises allocating respective priorities to a plurality of functional call handling modules, and allocating the call for handling to the functional modules in order of priority.